Systems and Methods for Packet Flow Control

ABSTRACT

Systems and methods for transmitting packets and controlling packet flow are provided in wireless communication systems. A time stamping technique synchronizes timers/and clocks between one or more senders and receivers in a wireless communication system. Additionally, a global acknowledgement frame carries a plurality of acknowledgement messages, such as one for each services identification (SID).

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional of Ser. No. 10/037,101 filed Dec. 31,2001 which claims the benefit of U.S. Provisional Patent ApplicationSer. No. 60/315,817, filed Aug. 29, 2001, entitled BROADBAND WIRELESSMEDIA ACCESS CONTROLLER, and which is incorporated herein by reference.

TECHICAL FIELD

The present invention relates generally to packet flow control andrelates more particularly to time stamping packets sent between packetsender(s) and receiver(s) and globally acknowledging packets sentbetween sender(s) and receiver(s).

BACKGROUND OF INVENTION

In packet based wired and wireless communication systems packets can belost during packet transmission. Therefore, systems and methods fordetermining when a packet has been lost and/or to correct packettransmission errors have been developed. For example, in cable modemdata communications there is a forward error correction protocol. In thewell-known TCP/IP protocol an acknowledgement protocol has been employedwhereby a receiver sends an acknowledgement for a received packet. Ifthe sender does not receive the acknowledgement for a pre-determinedperiod of time, the sender will retransmit the packet up to apre-determined number of times before considering transmission of such apacket hopeless. Traditionally, acknowledgement protocols employ asender side timer and timeout per logical flow of packets. Such perlogical flow allocation of resources at the sender is inefficient,leading to overly lengthy timeout periods and over allocation of timerresources.

Conventionally, each logical flow in a packet based communication systemcould have its own ACK stream. Thus, there could be, for example, oneACK per packet transmitted or one ACK for each logical flow. Thus, therecould be one software timer and data structure(s) associated with eachlogical flow, which becomes highly inefficient. Furthermore, the ACKsthat were transmitted back from a receiver to a sender may have beensent in a periodic burst packet, for example, and may not have consumeda significant portion of such a packet. For example, an ACK couldconsume twelve bytes while a burst was three hundred and eighty bytes.Thus, bandwidth is wasted as packets containing ACKs include a largepercentage of unused characters when transmitted in a burst.

SUMMARY OF INVENTION

The following presents a simplified summary of the invention in order toprovide a basic understanding of some aspects of the invention. Thissummary is not an extensive overview of the invention. It is notintended to identify key/critical elements of the invention or todelineate the scope of the invention. Its sole purpose is to presentsome concepts of the invention in a simplified form as a prelude to themore detailed description that is presented later.

The present invention provides for systems and methods for packet flowcontrol to mitigate error transmissions in a wireless communicationsystem in an efficient manner. In one aspect of the invention, a timestamping technique is employed to synchronize timers/and clocks betweenone or more senders and receivers in a wireless communication system.The time stamping technique comprises recording an expected arrival timeof a transmitted data packet by a sender and recording anacknowledgement time in an acknowledgement (ACK) response from thereceiver. The sender can then compare the acknowledgement time in theACK response with the recorded expected arrival time to determine if aproper acknowledgement has occurred for that packet. If an ACK responsehaving an acknowledgement time substantially the same as or greater thanthe expected arrival time, has not been received by the sender, thesender can determine that the packet has been lost. The sender can thentake an appropriate action (e.g., retransmit packets, timeout, requestan acknowledgement) for the lost packet.

In another aspect of the invention, a global acknowledgement frame isemployed carrying a plurality of acknowledgement messages, for example,one for each services identification (SID). The global acknowledgementframe can be a Media Access Control (MAC) management frame. For example,the acknowledgement request protocol can provide services on a perservice flow basis with the periodic acknowledgements from the servicesbeing global. A sender transmits one or more data packets to one or moreservices on one or more receivers. The one or more services and/orreceivers respond with and acknowledgement frame that includes status ofdownstream SIDs that are enabled and are active in the currentacknowledgement period. An excluded SID informs the sender that thereceiver did not have any activity with respect to the excluded SIDduring the time period. The sender can then take an appropriate action(e.g., retransmit packets, timeout, request an acknowledgement).

In one aspect of the present invention, the solution for the time stamptechnique and global acknowledgement is a complete software solutionresiding in the Media Access Control (MAC) layer. While the examplesolution is software in the MAC layer, it is to be appreciated that thesolution could be implemented in other layers, in firmware and/or insilico.

In another aspect of the present invention, timers and/or clocks on theWireless Access Termination System (WATS) and the Wireless Modem (WM)are synchronized employing a timestamp technique. After synchronization,timestamps are added to ACKs sent from the WM to the WATS. The WATSknows approximately when a packet it sends to the WM should arrive atthe WM and thus approximately when the ACK should arrive. Therefore, theWATS can determine if a packet was lost and can make such determinationearlier than in conventional timeout processing. More generally, asender knows that in an ACK frame ACK_(Tx), there should be ACKs forpackets {a, b, . . . z}. If the ACK frame does not contain an expectedACK, then the sender can more quickly determine whether to retransmitthe packet, abandon hope (e.g., timeout) of transmitting the packet orrequest an acknowledgement for the packet. Furthermore, since there is aWM timer synchronized with the WATS timer and the ACK sent from the WMcontains a time stamp related to when it was sent, the WM does not haveto maintain a timer for each logical flow, which reduces complexity andoverhead at the WATS.

In yet another aspect of the present invention, a global acknowledgementtechnique is employed between a WATS and a WM. The globalacknowledgement technique facilitates aggregating ACKs for one or morelogical flows into an ACK frame that can more efficiently utilize packetspace for ACKs returned to a sender. The ACKs stored in the ACK framecan contain timer synchronized timestamps. Therefore, the sender doesnot need separate timers and data structure(s) for each logical flow.Furthermore, by scheduling the transmission of ACK frames, instead ofrelying on ad hoc and/or interrupt driven ACK packet delivery, moredeterministic processing can be performed with respect to determiningwhether a packet has been received, which can reduce timeout delays. Inone aspect of the present invention, global acking and time stamps canbe selectively enabled and/or disabled per logical flow.

To the accomplishment of the foregoing and related ends, certainillustrative aspects of the invention are described herein in connectionwith the following description and the annexed drawings. These aspectsare indicative, however, of but a few of the various ways in which theprinciples of the invention may be employed and the present invention isintended to include all such aspects and their equivalents. Otheradvantages and novel features of the invention may become apparent fromthe following detailed description of the invention when considered inconjunction with the drawings.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates a system where a sender and a receiver have timersthat can be synchronized in accordance with an aspect of the presentinvention.

FIG. 2 illustrates timing associated with computing a ranging offset, inaccordance with an aspect of the present invention.

FIG. 3 is a block diagram of a sender configured in accordance with anaspect of the present invention.

FIG. 4 is a block diagram of a receiver configured in accordance with anaspect of the present invention.

FIG. 5 illustrates logical and physical packet and ACK frame flows inaccordance with an aspect of the present invention.

FIG. 6 is a flow chart of a method for controlling packet flow inaccordance with an aspect of the present invention.

FIG. 7 is a timing diagram that illustrates a sample packet flow inaccordance with an aspect of the present invention.

FIG. 8 is a timing diagram that illustrates a sample packet flow inaccordance with an aspect of the present invention.

FIG. 9 is a timing diagram that illustrates a sample packet flow inaccordance with an aspect of the present invention.

FIG. 10 is a block diagram of an environment in which the presentinvention may be employed.

FIG. 11 is a flow chart of a method for controlling packet flow inaccordance with an aspect of the present invention.

FIG. 12 illustrates a packet and an acknowledgement frame that can beemployed for packet flow control in accordance with an aspect of thepresent invention.

FIG. 13 is a block diagram that illustrates a system for controllingpacket flow in accordance with an aspect of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention relates to systems and methods for packet flowcontrol that mitigates error transmissions in wireless communicationsystems in an efficient manner. In one aspect of the invention, a timestamping technique is employed to synchronize timers/and clocks betweenone or more senders and receivers in a wireless communication system. Inanother aspect of the invention, a global acknowledgement frame isemployed in a wireless communication system. The global acknowledgementframe carries a plurality of acknowledgement messages, for example, onefor each services identification (SID).

In the following description, for purposes of explanation, numerousexamples are set forth in order to provide a thorough understanding ofthe present invention. It may be evident, however, that the presentinvention may be practiced in other examples not set forth in thefollowing description. In other instances, structures and devices areshown in block diagram form in order to facilitate describing variousaspects of the present invention.

FIG. 1 illustrates a system 100 where a sender 110 (e.g., a WATS orcomponent communicating through the WATS) is communicating with areceiver 130 (e.g., a WM or a component communicating through the WM).While a single sender 110 and a single receiver 130 are illustrated, itis to be appreciated that there can be one or more logical flows betweenthe sender 110 and the receiver 130 as additional communicatingcomponents (not illustrated) can transmit through the sender 11 0 andthe receiver 130. Additionally, a sender (e.g., a WATS) can communicatewith multiple receivers (e.g., WMS) through a shared upstream channeland each receiver can have multiple SID streams. Furthermore, while thesender 1 10 is characterized as the sender and the receiver 130 ischaracterized as the receiver, it is to be appreciated thatcommunications can flow both directions between the sender 110 and thereceiver 130.

Both the sender 110 and the receiver 130 have the ability to keep trackof time. The sender 110 includes a timer 120 that can keep time in, forexample, a thirty two bit global time reference. Similarly, the receiver130 includes a timer 140 that can also keep time in, for example, athirty two bit global time reference. There is a physical communicationflow between the sender 110 and the receiver 130 that can be viewedlogically as a downstream flow 150 (e.g., through WATS to WM) and anupstream flow 160 (e.g., through WM to WATS). As part of thecommunication flow between the sender 110 and the receiver 130, thetimer 120 and the timer 140 can be synchronized.

For example, the sender 110 can establish a base time (e.g., from asatellite signal, from an internal clock) and communicate that base timeto the receiver 130. The receiver 130 can then set its timer 140 to thatbase time. Additionally, and/or alternatively, the sender 110 and thereceiver 130 can participate in an initialization process whereby thesender 110 and the receiver 130 individually and/or collectivelydetermine and agree upon a time to set in the timers 120 and 140. Suchinitialization process can be repeated and/or updated periodically toprevent the timers 120 and 140, which are desirably kept synchronizedbetween the sender 110 and the receiver 130, from losingsynchronization. In one example of the present invention, the timer 120and/or the timer 140 can be adjusted by a ranging offset that isassociated with a physical transmission delay, and the round-trippropagation delay between the sender 110 and the receiver 130. Rangingoffsets will be discussed further in connection with FIG. 2.

Once the timers 120 and 140 have been synchronized, and/or once thetimers 120 and 140 are programmed in a manner that facilitates computingthe local time and the remote time (e.g., time at the other end of acommunication) a packet can be sent from the sender 110 to the receiver130. Since the timers 120 and 140 are synchronized, and since theranging offset has been computed, the sender 110 can store the timeT_(RECEIVE) at which it expects the packet to arrive at the receiver 130or the time it expects an acknowledgement from the receiver 130. It isto be appreciated that the ACK in accordance with one an aspect of thepresent invention does not occur on a per packet basis, but in a burstmode. For example, after a certain number of packets are transmitted, anACK or a global ACK frame will be received for the number of transmittedpackets. The global ACK frame can include an ACK for a number of packetsin addition to a time T_(ACK) at which the ACK is generated in thereceiver 130. Upon receiving an ACK that includes an ACK time greater orequal to the time T_(RECEIVE), the sender 110 can determine that the ACKframe should contain an ACK for the packet sent corresponding to thetime T_(RECEIVE) and if an ACK is not present for the packet sentcorresponding to the time T_(RECEIVE), then the packet was lost.

The receiver 130 can be programmed to periodically transmit an ACK,individually and/or in an ACK frame, to the sender 110. The ACK or ACKframe transmitted from the receiver 130 to the sender 110 contains adata field that stores a value associated with a time T_(ACK) at whichthe ACK is generated in the receiver 130. Thus, the sender 110 canexamine the time value of the T_(ACK) and determine whether the ACKcorresponds to the packet(s) sent at time T_(SEND) and expected to bereceived by the receiver 130 at the time T_(RECEIVE). If the ACK or ACKframe sent at T_(ACK) does not contain an ACK for the packet sent atT_(RECEIVE), then the sender 110 can select between performing actionsincluding but not limited to, retransmitting the packet, abandoning hopeof transmitting the packet (e.g., timeout), and requesting that anacknowledgement to the packet be sent or resent. Alternatively, theranging offset can be employed to compute the time T_(ACK) at the WMwhen an acknowledgement is being generated.

Since the sender 110 locally records the T_(RECEIVE) and can compare itwith an ACK having a time TACK, the sender 110 does not have to maintaina separate timer for each logical flow associated with the physical flowbetween the sender 110 and the receiver 130, which reduces overhead andcomplexity at the sender 110. Furthermore, since the time T_(RECEIVE)can be computed (e.g., using the time sent and the ranging offset), adetermination of whether a packet has been lost can be made earlier thanis possible with a traditional timeout period, providing a moreresponsive packet control system.

In one example of the present invention, an ACK frame is a MAC layermanagement frame that carries a number of ACK messages, one per SID.Thus, in the example, for a WM, an ACK frame will include the status ofdownstream SIDs that are Automatic Request (ARQ) enabled and that wereactive in a current ACK period. Therefore, by employing a global ACKframe, the number of ACK transmissions are reduced saving bandwidth. Asingle timestamp can be employed for the entire global ACK frame basedon the time that the ACK frame was generated. Additionally, the globalACK frame can be transmitted across one or more messages, so that unusedcharacters in messages can be utilized increasing bandwidth. Forexample, the global ACK frame can be transmitted across one or moremessages in headers of the messages. The global ACK frame can also betransmitted a MAC management message. In one example of the presentinvention, the global ACK frame includes an ACK sequence number tofacilitate detecting missing, lost and/or corrupted ACK frames. When thesender 110 sees that an ACK is missing, the sender 110 can performactions including, but not limited to, retransmitting a packet for whichno ACK was received, requesting an acknowledgement for the packet and/orconsidering the packet non-transmittable.

It is to be appreciated that in a wireless communication system in whichWMs and WATS devices are in a fixed location, a ranging offset (e.g.,time of a transmission) between different devices can be determined thatis substantially fixed. The ranging offset between devices can beemployed to synchronize one or more timers with a WATS device. Turningnow to FIG. 2, ranging offsets and time determinations are examined moreclosely through a timing diagram 200. Two parallel time lines areillustrated in FIG. 2. A time line 210 associated with a WATS displaysthe time as kept at a WATS. A time line 212 associated with a WM, withwhich the WATS is communicating, displays the time as kept at a WM.

FIG. 2 illustrates an initial time 214 (T₀) time at the WATS. Due tophysical transmission delay, a packet transmitted at 214 will arrive atthe WM at 216 (T₀+RO). The transmission delay can be considered aranging offset and thus the time at the WATS at 216 can be computed asT₀+RO. In one example of the present invention, the timers at the WATSand the WM can be synchronized so that the packet transmitted at 214,which arrives at 216, can appear to have been instantaneouslytransmitted from the WATS to the WM. For example, the timer at the WMcan be adjusted by an amount equal to RO so that at 216, when the packetarrives at the WM, the time at the WM is T₀. Thus, if the WATS islocally recording the time T_(RECEIVE) which is approximately equal tothe time the packet is arrived to the WM when the timers aresynchronized, and thus the WATS need only store one of the two times.Additionally, delays can be computed into the time T_(RECEIVE), suchthat the time T_(RECEIVE) is approximately equal to the time when thepacket is going into the physical media plus the time of thetransmission delay from the physical media transmitter circuitry to theair and from the sender to the receiver on the air and the receive delayin the receiver circuitry.

With the WM programmed to periodically transmit ACKs, the WATS cancompute if an ACK for the packet sent at T_(RECEIVE) should be receivedat the WATS when an ACK frame is received with a time T_(ACK) that isgreater than or equal to T_(RECEIVE). While the timers were adjusted tomake communication from the WATS to the WM appear substantiallyinstantaneous, timing adjustments are required for communications fromthe WM to the WATS to account for the fact that the WM timer issynchronized with the WATS timer. For example, the time T_(RECEIVE) canbe adjusted utilizing the ranging offset or two times the rangingoffset, such that a comparison to an the time T_(ACK) can be made.

Consider a transmission from the WM to the WATS that begins at 218 andwhich will be received at the WATS at 220, which we will define as timeT₁. As can be seen from the timing diagram 200, the time T₁ at the WATSoccurs at 220, which is before the time T₁ (which occurs at 222) at theWM, due to the timer adjustments. Thus, if the WM desires to have thetransmission arrive at time T₁ relative to the WATS (e.g., at 220), thenthe WM will compute the time at which to begin the transmission. Suchcomputation involves determining the WM T₁ and calculating twice theranging offset R0. Thus, for the WM to transmit an ACK that will bereceived at 220 (WATS T₁), the WM will make such transmission at T₁−2RO.

Through synchronizing and adjusting the timers at the WATS and the WM,the WATS can transmit packets at a known time and compute when an ACKfor those packets should be received. Such pre-computable ACK timesmitigates the need for a timeout timer in the WATS.

FIG. 3 illustrates a system 230 for transmitting packets. The system 230includes a sender 240 (e.g., a WATS) comprising a collection ofcomponents. The collection of components can be implemented utilizingsoftware and/or hardware. In software, computer executable componentscan be stored on a computer readable medium, in accordance with anaspect of the present invention. Additionally, the functionality of thecollection of components can be combined or partially combined, orportions of functionality provided in separate or combined components.The sender 240 can transmit packets to a receiver 260 (e.g., a WM ordownstream SIDs) and receive ACKs back from the receiver 260.

In one example of the present invention, the sender 230 includes a timer242 that produces a timing reference. The timing reference can be, forexample, a 32 bit global timing reference, although it is to beappreciated that other timing references (e.g., 16 bit resolution orless) can be employed in accordance with the present invention. Thetimer 242 provides the timing reference to a time signal generator 244that sends the timing reference to an external component (e.g., thereceiver 260) during a synchronization or initialization process. Thetiming reference can, therefore, be employed by the WM to establishand/or maintain synchronization between the timer 242 and a timer (notillustrated) in the receiver 260. The timer 242 can be a software timeror a variety of different hardware timer types.

The sender 240 also includes a ranging offset determiner 246 thatcomputes a delay associated with transmitting between the sender 240 andthe external component (e.g., the receiver 260). The ranging offsetdeterminer 246 can employ the time reference produced by the timer 242and the processing performed by the time signal generator 244 tofacilitate computing a ranging offset and thus in establishing and/ormaintaining synchronization.

The sender 240 can also include a time signal resolver 248 that canreceive timing information and/or packets from an external component towhich the timing reference was provided. The received information and/orpacket(s) can store an external time reference that facilitates the timesignal resolver 248 resolving the actual time at which the packet wassent from the receiver 260 based, at least in part, on the timingreference, the transmission delay, and/or the external component timereference. Thus, the time signal resolver 248 facilitates establishingand/or maintaining synchronization between sender and receiver timersand further facilitates determining whether a transmitted packet shouldbe acknowledged within a pre-determined (e.g., configurable) period oftime.

The sender 240 can also include a packet builder 250 that can build andtransmit an outgoing packet that will be sent to the receiver 260. Suchpackets can include, but are not limited to, data packets, controlpackets, timing packets, management packets and the like. The sender 240knows the time at which a packet built by the packet builder 250 istransmitted to the receiver 260, and can compute and store locally atime at which the packet is expected to be received by the receiver 260.Typically, this time offset can be established during an initializationperiod. An acknowledgement relationship establisher 252 can establish arelationship between the time reference stored in the ACK and anexpected receive time for the outgoing packet.

The sender 240 can also include an acknowledgement resolver 254 thatdetermines whether an acknowledgement for the outgoing packet has beenreceived corresponding to the expected receive time. In one example ofthe present invention, the acknowledgement resolver 254 is operablyconnected to (e.g., is in physical, logical, electrical and/or datacontact with) a retry determiner 256 that determines whether an outgoingpacket should be retransmitted based, at least in part, on processingperformed by the acknowledgement resolver 254. For example, theacknowledgement resolver 254 can determine that an ACK has not beenreceived within a pre-determined, configurable period of time and, thussignal the retry determiner 256 about such omission. The retrydeterminer 256 can then decide whether to retransmit the packet and/orwhether to abandon hope (e.g., timeout) of transmitting the packet.

The retry determiner 256 can keep a pre-determined (e.g., configurable)count of the maximum number of times that it will attempt to transmit apacket. If the packet has been sent that pre-determined number of times,then although the acknowledgement resolver 254 determines that no ACKhas been received for the packet, the retry determiner 256 can determinethat the sender 240 should move on, and that such packet will not betransmitted yet again. If the packet has not been sent thatpre-determined number of times, then the retry determiner 256 cancommunicate with the packet builder 250 and/or other components tofacilitate retransmitting the packet.

In another example of the present invention, the acknowledgementresolver 254 is operably connected to an acknowledgement requester 258that determines whether an acknowledgement should be requested based, atleast in part, on the determination made by the acknowledgement resolver254. For example, the acknowledgement resolver 254 may determine that noacknowledgement for a packet has been received. But, based, for example,on sequence numbers in an ACK frame, the acknowledgement requester 258may determine that it is likely that an ACK was sent but not received.Thus, rather than retransmit a packet that may have been received, thesender 240 can, through the acknowledgement requester 258, request anadditional ACK frame to be sent. This can save bandwidth, particularlyif the packet for which no ACK was received is a large packet and/or onethat is difficult to transmit. This can also improve security since thesender 240 can be configured to only retransmit highly secure packetsafter the acknowledgement resolver 254 determines that no ACK wasreceived even after the acknowledgement requester 258 requested such anACK.

FIG. 4 illustrates a packet receiving system 270 that includes areceiver 280 that can receive packets from a sender 298. The receiver280 (e.g., a WM or downstream SIDs) can include a timer 282 that can beprogrammed to store a time received as a timing reference sent from thesender 298 (e.g., a WATS). The timer 282 can also keep timesynchronously with a timer associated with the sender. For example, thereceiver 280 may receive a global time reference and/or a ranging offsetfrom the sender 298, store such values in memory locations andinitialize a timer to compute times based on such stored values. Thus,time synchronization, which facilitates the timestamp based ACK protocoldescribed herein, can be implemented.

The receiver 280 can also include a ranging offset determiner 284 forcomputing a transmission delay between the system and the time sender.The ranging offset can be employed to facilitate establishing and/ormaintaining synchronization between timers. The receiver 280 can alsoinclude an acknowledgement message generator 288 that generates anacknowledgement for a packet received from the sender 298. Theacknowledgement will include a time value retrieved from the timer,where the time value can be, for example, the time when theacknowledgement was generated. Such a time value can be, for example,the time relative to the receiver 280 and/or the time relative to thesender 298 when the acknowledgement is sent from the receiver 280 to thesender.

It is to be appreciated that the components associated with the receiver280 can be implemented in software and/or hardware. In software,computer executable components can be stored on a computer readablemedium, in accordance with an aspect of the present invention.Additionally, the functionality of the collection of components can becombined or partially combined, or portions of functionality provided inseparate or combined components.

FIG. 5 illustrates physical and logical flows associated with anacknowledgement protocol facilitated by the present invention. Thephysical flow 400 between a sender (e.g., WATS 410) and a receiver(e.g., WM 430) can be subdivided into a downstream logical flow 450 andan upstream logical flow 460. The sender includes a timer 420 that canbe synchronized with a receiver timer 440 using systems and methodsdescribed herein.

Components (e.g., SIDs 462, and 464 through 466) can communicate withthe sender 410 through the receiver 430. The ACKS from the SIDs can beaggregated into an ACK frame 492 that is transmitted along a logical ACKframe stream 490. Thus, a single timer 420 can be employed inacknowledgement processing. Concerning the ACK frame 492, individualACKs from the SIDs may be transmitted along individual flows between theSIDS and the receiver 430. For example SID 462 may transmit an ACK alongflow 482, while SID 464 transmits an ACK along flow 484. The receiver430 then aggregates these ACKs into the ACK frame 492, which facilitatesmitigating bandwidth waste problems. A single timestamp can be providedin the ACK frame 492. The global ACK frame can be transmitted across oneor more messages, so that unused characters in messages can be utilizedincreasing bandwidth.

In view of the foregoing structural and functional features describedabove, a methodology in accordance with various aspects of the presentinvention will be better appreciated with reference to FIGS. 6-11.While, for purposes of simplicity of explanation, the methodologies ofFIGS. 6-11 is shown and described as executing serially, it is to beunderstood and appreciated that the present invention is not limited bythe illustrated order, as some aspects could, in accordance with thepresent invention, occur in different orders and/or concurrently withother aspects from that shown and described herein. Moreover, not allillustrated features may be required to implement a methodology inaccordance with an aspect the present invention.

FIG. 6 illustrates a methodology 700 for controlling packet flow inaccordance with an aspect of the invention. At 710, the method 700includes establishing a base time. For example, a 32 bit global timingreference can be established. Time sources can include, but are notlimited to, satellite time signals, internal time signals and ad hoctime signals. At 720, a ranging offset between a sending component and areceiving component is computed. For example, one or more test messagesand/or signals and the like can be transmitted through a sender/receivercommunication system. The transit time can be employed to determine theranging offset.

At 730, a sending component can communicate the base time and/or theranging offset to a receiving component. Alternatively and/oradditionally, a receiving component could communicate the base timeand/or ranging offset to a sending component and/or the sendingcomponent and the receiving component could collaboratively determinethe base time and ranging offset. After 730, whichever base time andranging offset determination and/or communication method is performed,the sender and the receiver will have information sufficient tosynchronize timers local to the sender and receiver.

At 740, the sender transmits a packet to the receiving component. Thesender can utilized the base time to determine the time at which thepacket was sent and thus can compute the time at which the senderexpects the packet to be received by the receiver (e.g., utilizing theranging offset). Thus, at 750, a determination is made concerningwhether an acknowledgement to the packet transmitted at 740 has beenreceived within a pre-determined period of time. If the determination at750 is YES, then processing proceeds to 770. But if the determination at750 is NO, then at 760, the sender can select between actions including,but not limited to, retransmitting the packet transmitted at 740,requesting an acknowledgement for the packet transmitted at 740 andabandoning further attempts to transmit the packet.

Thus, at 760, the method 700 can selectively retransmit the packetbased, at least in part, on whether an acknowledgement to the packet wasreceived. Similarly, at 760, the method 700 can selectively request anacknowledgement to the packet transmitted at 740 based, at least inpart, on the determination of whether an acknowledgement to the packetwas received. At 770, a determination is made whether there is anotherpacket to transmit. If the determination at 770 is YES, then processingreturns to 740, otherwise processing can conclude.

FIG. 7 illustrates a sample packet flow diagram associated with anacknowledgement protocol facilitated by the present invention. ThreeSIDs, packets communicated to the SIDs and aggregated acknowledgementsreturned from a receiver that aggregates ACKs from the SIDs areillustrated. Thus, during SEND TIME₁, three packets (e.g., packet 1, 2,3) are sent to SID1 and received by SID1. Also during SEND TIME₁, twopackets (e.g., packet 20, 21) are sent to SID2, but these two packetsare lost. Also during SEND TIME₁, two packets (e.g., packet 40, 41) aresent to SID3 and these two packets are received.

Thus, at AckTime₁, an aggregated acknowledgement ACK1 is transmittedfrom the ACK aggregator to the sender. ACK1 indicates that the lastpacket received correctly for SID1 was packet 3, thus the sender knowsthat all packets sent to SID1 were correctly received. ACK1 alsoindicates that the last packet received correctly for SID3 was packet41, thus the sender knows that all packets sent to SID3 were correctlyreceived. However, ACK1 does not contain information about SID2. But thesender knows that packets 20 and 21 were sent to SID2. Thus, based onthe information received in ACK1, the sender can retransmit, during SENDTIME₂, the packets 20 and 21. ACK2, sent at AckTime₂ indicates thatthese packets were received.

The synchronization of timers between a sender and receiver and thestoring of a timestamp in aggregated acknowledgements from the receiverto the sender facilitate shortening a timeout period so that the sendercan determine, at AckTime1, whether retransmission is required, thustime savings is facilitated.

FIG. 8 illustrates a sample packet flow diagram associated with anacknowledgement protocol facilitated by the present invention. ThreeSIDs, packets communicated to the SIDs, an acknowledgement request andaggregated acknowledgements returned from a receiver that aggregatesACKs from the SIDs are illustrated. Thus, during SEND TIME₁, threepackets (e.g., packet 1, 2, 3) are sent to SID1 and these three packetsare received by SID1. Also during SEND TIME₁, two packets (e.g., packet20, 21) are sent to SID2 and are lost. Also during SEND TIME₁, twopackets (e.g., packet 40, 41) are sent to SID3 and these two packets arereceived. Thus, at AckTime₁, an aggregated acknowledgement ACK1 istransmitted from the ACK aggregator to the sender. Assume that this ACK1is lost. ACK1 indicated that the last packet received correctly for SID1was packet 3, thus the sender should know that all packets sent to SID1were correctly received. But the aggregated ACK was lost, and thus thesender does not gain the knowledge. ACK1 also indicated that the lastpacket received correctly for SID3 was packet 41. The sender wasexpecting, at AckTime₁ an acknowledgement. Since no acknowledgement wassent, and since, for example, several packets would have to beretransmitted, the sender determines during SENDTIME₂ not toautomatically retransmit, but rather to request an acknowledgement.

In response to the ReqAck transmitted during SENDTIME₂, the receivertransmits ACK2. Thus, at AckTime₂, an aggregated acknowledgement ACK2 istransmitted from the ACK aggregator to the sender. ACK2 indicates thatthe last packet received correctly for SID1 was packet 3, thus thesender knows that all packets sent to SID1 were correctly received. ACK2also indicates that the last packet received correctly for SID3 waspacket 41, thus the sender knows that all packets sent to SID3 werecorrectly received. However, ACK2 does not contain information aboutSID2. But the sender knows that packets 20 and 21 were sent to SID2.Thus, based on the information received in ACK2, the sender canretransmit, during SEND TIME₃, the packets 20 and 21. ACK3, sent atAckTime₃ indicates that these packets were received.

FIG. 9 illustrates a sample packet flow diagram associated with anacknowledgement protocol facilitated by the present invention. ThreeSIDs, SID1, SID2, and SID3 are sent packets. During SENDTIME₁, SID1 issent packets 31 and 32 and these packets are received correctly. Alsoduring SENDTIME₁, SID2 is sent packet 61 and this packet is receivedcorrectly. Also during SENDTIME₁, SID3 is sent packets 71 and 72 andthese packets are received correctly. Thus, at AckTime₁, an aggregatedACK1 is transmitted from the aggregating ACK receiver to the sender.ACK1 could be described, for example, as ACK1 {(1,32), (2,61), (3,72)}which indicates that SID1 received up to packet 32 correctly, SID2received up to packet 61 correctly and SID3 received up to packet 72correctly. Thus, all packets transmitted during SENDTIME₁ were receivedcorrectly and acknowledged.

During SENDTIME₂, SID1 is sent packets 33 and 34 and these packets arereceived correctly. Also during SENDTIME₂, SID2 is sent packet 62 andthis packet is received correctly. Also during SENDTIME₂, SID3 is sentpacket 73 and this packet is received correctly. Thus, at AckTime₂, anaggregated ACK2 is transmitted from the aggregating ACK receiver to thesender. ACK2 could be described, for example, as ACK2 {(1,34), (2,62),(3,73)} which indicates that SID1 received up to packet 34 correctly,SID2 received up to packet 62 correctly and SID3 received up to packet73 correctly. IN the present example, ACK2 is lost. Thus, the sender,which was expecting at AckTime₂ an acknowledgement for the packetstransmitted during SENDTIME₂ can take actions including, but not limitedto, retransmitting the packets, requesting an acknowledgement, or justwaiting a little longer for the ACK. In the illustrated example, thesender determines to wait until a later AckTime before requesting anacknowledgement and/or retransmitting the packets.

Thus, during SENDTIME₃, SID1 is sent packets 35, 36 and 37 from which 35and 36 are received correctly and 37 is lost. Also during SENDTIME₃,SID2 is not sent any more packets. Also during SENDTIME₃, SID3 is sentpacket 74 and this packet is lost. Thus, at AckTime₃, an aggregated ACK3is transmitted from the aggregating ACK receiver to the sender. ACK3could be described, for example, as ACK3 {(1,36)} which indicates thatSID1 received up to packet 36 correctly, from which it can be assumedthat packets 33 and 34 were also received correctly. A sequence numberassociated with ACK3 could inform the sender that ACK2 was in fact lost.Furthermore, other information can be extracted from ACK3. For example,there was no ACK for SID2 or SID3, thus the sender knows thatinformation concerning SID2 and SID3 is not up to date. The informationfor SID2 is now two send times old, and thus during SENDTIME4, thesender can send a ReqAck for SID2, while retransmitting a lost packet 37for SID1 and transmitting new packets for SID1 and SID3 as illustrated.

In response to the ReqAck for SID2 and the new packets transmitted toSID1 and SID3, at time AckTime₄, the aggregating ACK receiver cantransmit an ACK4 {(1,39), (2,62), (3,73)}. Based on the information inACK4, the sender can update its information and now knows that SID1 hasreceived up to packet 39 correctly, the SID2 has received up to packet62 and that SID3 lost packet 74.

The three sample packet and ACK flows illustrated in FIGS. 7, 8 and 9are merely illustrative and it is to be appreciated that the presentinvention can interact with and/or generate other packet and ACK flows.

FIG. 10 illustrates an environment 800 in which the present inventioncan be employed. The environment 800 includes a backbone network 810(e.g., Internet, intranet) from which packets can be generated that areintended to be communicated to one or more customer premises equipments(CPE) 860. The backbone network 810 interacts with a WATS indoor unit(IDU) 820 via a WATS interface 815. The WATS IDU 820 in turn interactswith a WATS outdoor unit (ODU) and/or antenna 830 via a WATS IDU/ODUinterface 825. Signals are transmitted in and over the air signal 835from the WATS ODU 830 and are received by a WM ODU and/or antenna 840.The WM ODU and/or antenna 840 then interacts with a WM IDU 850 via aWM/IDU interface 845. The WM IDU 850 then interacts with one or moreCPEs 860 delivering the packets that were generated at the backbonenetwork 810, for example. While data flow from the backbone network 810to the CPEs 860 is illustrated in FIG. 10, it is to be appreciated thatpackets, ACKs and other messages and/or signals can flow from the CPEs860 to the backbone network 810.

FIG. 11 illustrates a methodology 900 for controlling packet flow inaccordance with an aspect of the present invention. At 910, a base timeand/or a ranging offset are received from a sending component (e.g., aWATS). Thus, a timer associated with a receiver on which the method 900can be implemented can be synchronized based on such received base timeand/or ranging offset. Therefore, at 920, synchronization can beestablished and/or maintained. It is to be appreciated that themaintenance begun at 920 can be carried out concurrently with subsequentblocks in method 900.

At 930, a packet is received from a sending component. Such packet canbe, for example, a data packet, a control frame, a message, a signal andthe like. At 940, a determination is made concerning whether the packetwas received correctly. For example, a block check character or cyclicalredundancy check character may be examined to determine packetcorrectness. If the determination at 940 is NO, then an acknowledgementwill not be sent for the packet and processing will proceed to 970. If,however, the packet was received correctly, then at 950, the receivingcomponent on which the method 900 is implemented can retrieve a time at950 and build an acknowledgement to the packet received at 930 that willinclude a time reference. The acknowledgement can be a globalacknowledgement, such that one time reference is provided for aplurality of packets and a number of ACKs corresponding to the pluralityof packets. Such a time reference can be employed by the receiver of theACK in determining whether an ACK for a message has been timelyreceived. At 960, the ACK and the time reference from 950 is transmittedand processing continues to 970. At 970, a determination is madeconcerning whether the method wants to receive another packet. If so,processing returns to 930, otherwise processing concludes. It is to beappreciated that the packet receive blocks can run in parallel with theACK frame generation and transmit blocks.

In another example of the present invention, the method 900 can includereceiving a request for an acknowledgement to a packet sent by thesending component. Based on the request for acknowledgement, anddetermined by whether the receiver correctly received the packet, themethod 900 can selectively send an acknowledgement of the packet to thesending component, where the acknowledgement carries a data fieldstoring the receiver time when the acknowledgement was sent.

Turning now to FIG. 12, a global acknowledgement frame 1300 isillustrated for transmitting a plurality of acknowledgements between aWATS and a WM. The global acknowledgement frame includes a first portion1310 that holds a plurality of acknowledgements to a plurality ofpackets received at the WM from the WATS and a second portion 1320 thatholds a WM local time when the global acknowledgement frame wasgenerated by the WM, where the local time is related to a base timeestablished in the WATS. The plurality of packet acknowledgements canalso include identifiers that identify the packet in which theacknowledgement corresponds in addition to SIDs. Thus, the globalacknowledgement frame 1300 can be employed to facilitate theacknowledgement protocol described herein. While the globalacknowledgement frame 1300 is illustrated with two portions, it is to beappreciated that an acknowledgement frame employed in accordance withthe present invention can have a greater and/or lesser number ofportions.

FIG. 12 also illustrates a global acknowledgement frame 1330 fortransmitting between a WATS and a WM that can be employed to aggregateacknowledgements. The acknowledgement frame 1330 includes a firstportion or field 1340 that holds a packet acknowledger identifier thatcan be employed to identify from which receiving component (e.g., WM)the frame 1330 is being transmitted. The frame 1330 also has a secondportion or field 1340 that holds a plurality of packet acknowledgements.The plurality of packet acknowledgements can also include identifiersthat identify the packet in which the acknowledgement corresponds. Theframe 1330 also has a third portion or field 1350 that holds a packetidentifier that identifies a packet as an acknowledgement frame. Whilethe acknowledgement frame 1330 is illustrated with three portions, it isto be appreciated that an acknowledgement frame employed in accordancewith the present invention can have a greater and/or lesser number ofportions. A single timestamp per acknowledgement frame can be providedin any of the illustrated three portions.

In one example of the present invention, an ACK message may include aSID field, a type field, a length field, a sequence number field, areserved field and an information map field. The SID field can store theservice identifier of the data flow on which an acknowledgement isgenerated. The type field may be a bitfield, for example, that storesthe type of ACK message. The length field can store the length of theACK message by, for example, storing the total number of bytes in theACK message after the length field. The sequence number field can storethe sequence number of the first expected frame and can also be astarting sequence number for a receive window, for example. Theinformation map field can store a map of a receiver window showingframes that are lost and received, for example. Depending on the messagetype, (as recorded in the type field), the information map can be, forexample, a complete bitmap, a simplified bitmap or a series of ranges.In one example of the present invention, if all packets have beencorrectly received in sequence, the field will be empty.

FIG. 13 illustrates a system 1400 for controlling packet flow. Thesystem 1400 interacts with one or more packet recipients 1410 for whichpackets 1420 from a sending component are intended. The system 1400 alsointeracts with one or more packet acknowledgers 1430 that generateacknowledgements to the received packets. The system 1400 includes anacknowledgement aggregator 1440 that packages the one or moreacknowledgements into an acknowledgement frame 1450 in addition to asingle timestamp for transmission back to the sending component. Thus,the system 1400 also includes an acknowledgement frame transmitter 1460that sends the acknowledgement frame 1450 to the sending component.

The system 1400 can be employed in a method for controlling packet flow.The method interacts with components that receive packets from a sendingcomponent. Such components produce acknowledgements to the receivedpackets and aggregate the acknowledgements into an acknowledgementframe. The method then transmits the acknowledgement frame back to thesending component. Thus, more efficient acknowledgement transmittal canbe achieved than is possible with conventional, non-aggregating methods.

What has been described above are examples of the present invention. Itis, of course, not possible to describe every conceivable combination ofcomponents or methodologies for purposes of describing the presentinvention, but one of ordinary skill in the art will recognize that manyfurther combinations and permutations of the present invention arepossible. Accordingly, the present invention is intended to embrace allsuch alterations, modifications and variations that fall within thespirit and scope of the appended claims.

1. A global acknowledgment frame for transmitting between a sender and areceiver, the frame comprising: a first portion that holds a pluralityof acknowledgements corresponding to a plurality of packets received atthe receiver; and a second portion that holds an acknowledgement timewhen the acknowledgement was generated at the receiver.
 2. The frame ofclaim 1, the sender being a wireless access termination modem system andthe receiver being a wireless modem, the acknowledgement time beingderived from a base time established in the wireless access terminationmodem.
 3. The frame of claim 1, the receiver being a wireless accesstermination modem system and the sender being a wireless modem, theacknowledgement time being derived from a base time established in thewireless access termination modem and a transmission delay between thesender and receiver.
 4. A system for controlling packet flow,comprising: at least one packet receiver that receives packets from asending component; at least one acknowledger that generates a pluralityof acknowledgements corresponding to the received packets; anacknowledgement aggregator that packages the plurality ofacknowledgements and a single time stamp into an acknowledgement frame;and an acknowledgement frame transmitter that sends the acknowledgementframe to the sending component.
 5. The system of claim 4, the senderbeing a wireless access termination modem system and the receiver beinga wireless modem, the acknowledgement time being derived from a basetime established in the wireless access termination modem.
 6. The systemof claim 4, the single time stamp corresponding to a time that theacknowledgement frame was generated.
 7. The system of claim 4, thereceiver being a wireless access termination modem system and the senderbeing a wireless modem, the acknowledgement time being derived from abase time established in the wireless access termination modem and atransmission delay between the sender and receiver.
 8. The system ofclaim 4, the acknowledgement frame being transmitted across a pluralityof messages.
 9. A method for controlling packet flow, comprising:receiving at plurality of packets from a sending component; producingacknowledgements corresponding to the plurality of received packets;aggregating the acknowledgements into an acknowledgement frame; andtransmitting the acknowledgement frame to the sending component.
 10. Themethod of claim 9, further comprising providing the acknowledgementframe with a single time stamp.
 11. The method of claim 10, the singletime stamp corresponding to a time that the acknowledgement frame wasgenerated.
 12. The method of claim 11, further comprising deriving thetimestamp from a base time established in a wireless access terminationmodem.
 13. The method of claim 9, the transmitting the acknowledgementframe to the sending component comprising transmitting theacknowledgement frame across one of a plurality of message headers and asingle MAC management message.
 14. A system for controlling packet flow,comprising: means for receiving a plurality packets from a sendingcomponent; means for producing acknowledgements to the plurality ofpackets; means for aggregating the acknowledgements into anacknowledgement frame; means for providing a single timestamp in theacknowledgment frame; and means for transmitting the acknowledgementframe to the sending component.
 15. An acknowledgement frame fortransmitting data between a wireless access termination modem and awireless modem, comprising: a first portion that holds a plurality ofpacket acknowledgements; and a second portion that holds a packetidentifier that identifies a packet as an acknowledgement frame.
 16. Theframe of claim 15 further comprising a single time stamp correspondingto a time that the acknowledgement frame was generated.